package org.example;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * Hello world!
 *
 */
public class App {
    public static void main( String[] args ) {
        int[] nums = {0,0,1,1,1,1,1,1,1,1,2,2,3,3,4}; // 输入数组
//        int[] nums = {1,1,2};
        int k = removeDuplicates(nums); // 调用
        System.out.println("k="+k);

//        System.out.println(k);
//        int[] expectedNums = new int[k]; // 长度正确的期望答案
//        for (int i = 0; i < k; i++) {
//             nums[i] = expectedNums[i];
//        }

    }
    //1 1 2
//    private static int removeDuplicates(int[] nums) {
//        int j=0;
//        HashMap<Integer, Integer> map = new HashMap<>();
//        map.put(j,nums[0]);
//        for (int i = 1; i <nums.length ; i++) {
//            if(map.get(j)!=nums[i] ){
//                j=j+1;
//                map.put(j,nums[i]);
//            }
//        }
//        int k = map.size();
//        System.out.println("k="+k);
//        for (int i = 0; i <k ; i++) {
//            Integer o = map.get(i);
//            System.out.println(o);
//        }
//        return k;




//    }
    //1 1 2
    private static int removeDuplicates(int[] nums) {
        if(nums.length==0){
            return 0;
        }
        int i=1; //快指针
        int j=1; //慢指针
        while(i<nums.length){
            if(nums[i]!=nums[i-1]){
                nums[j]=nums[i];
                j++;
            }
            i++; //快指针一直向前判断
        }
        return j;
    }



}
